home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / FileDropper2.0ß1 ƒ / FD Interface.h next >
Text File  |  1996-06-04  |  6KB  |  217 lines

  1. /*****
  2.  * FD Interface.h
  3.  *
  4.  * Copyright © 1993 Troy Anderson; All rights reserved.
  5.  *
  6.  * Written by Troy Anderson
  7.  *
  8.  * Header file for File Dropper, with all of the prototypes and definitions you need to interface
  9.  * with the File Dropper π library.  See the comments before the function prototypes below for
  10.  * explanations of their use.  See the read me accompanying this file for general information
  11.  * about what this is and how to use it.
  12.  *
  13.  * Version 1.1ß3
  14.  *****/
  15.  
  16.  
  17. #pragma once
  18.  
  19. /**
  20.  ** message values
  21.  **
  22.  ** These are the values that will be passed to you via the message parameter in
  23.  ** ModuleMain.
  24.  **/ 
  25.  
  26. enum { 
  27.     eStartup, 
  28.     eAEInitialize, 
  29.     eSFInitialize, 
  30.     eValidateFile, 
  31.     eProcessFile, 
  32.     eUserCancelled, 
  33.     eDispose, 
  34.     eDoAboutBox, 
  35.     eQuitting,
  36.     eIdle
  37. };
  38.  
  39.  
  40. /**
  41.  ** ModuleDataRec
  42.  **
  43.  ** A pointer to this structure is passed to you in ModuleMain
  44.  **/ 
  45.  
  46. typedef struct {
  47.     FSSpec    *theFile;
  48.     long    refcon;
  49.     } ModuleDataRec;
  50.  
  51.  
  52. /**
  53.  ** rAboutStringsID
  54.  ** 
  55.  ** This is the ID of the STR# resource that you should put your About information
  56.  ** in.  If something is in there, it will be displayed when the user picks the 
  57.  ** About item in the Apple menu.
  58.  **/
  59. #define    rAboutStringsID        129
  60.  
  61. /**
  62.  ** Customization function types
  63.  **
  64.  ** These three function types are needed only if you want to override the standard
  65.  ** get file stuff.
  66.  **/
  67.  
  68. /*
  69.  * You can write your own "file getting" function that is called in stead of
  70.  * StandardGetFile if you want to.  You may use CustomGetFile, for example, with
  71.  * a custom file dialog.
  72.  *
  73.  * To use this function, return TRUE if theFile points to the file the user selected,
  74.  * return FALSE if the user cancelled.
  75.  */
  76. typedef Boolean         (*CustomGetFSSpecFunc)( FSSpec *theFile, long *refcon);
  77.  
  78. /* 
  79.  * The next function is identical to the one described in Inside Macintosh
  80.  * when using a custom file filter function with StandardGetFile.
  81.  *
  82.  * If you use my built in file getting function (not your own CustomGetFSSpecFunc), 
  83.  * the optional CustomFileFilterFunc you supply will be sent to StandardGetFile.
  84.  */
  85. typedef pascal Boolean    (*CustomFileFilterFunc)( CInfoPBPtr pbp);
  86.  
  87.  
  88.  
  89. /**
  90.  ** Customization function installation routines
  91.  **
  92.  ** Call these functions to install custom handlers for the GetFile, FileFilter, and DialogHook
  93.  ** when using the GetFile interface.
  94.  **/
  95.  
  96. void InstallCustomGetFSSpecFunc( CustomGetFSSpecFunc theFunction);
  97. void InstallCustomFileFilterFunc( CustomFileFilterFunc theFunction);
  98.  
  99.  
  100.  
  101. /**
  102.  ** Setting up status dialog parameters
  103.  **
  104.  ** Call this function to tell File Dropper if you want the status dialog to be shown and
  105.  ** what info you want in it.  If showStatusDialog is TRUE, the dialog will show up while
  106.  ** files are being processed.  If showProgressBar is TRUE, a progress bar (like the Finder's
  107.  ** file copying progress bar) will be in the status window for you to use (see SetStatusPercentage
  108.  **    below).  If customMessage is not NULL, the pascal string in it will be written in the
  109.  ** status dialog.  CustomMessage would be something like "\pNow processing your files..."
  110.  **
  111.  ** Defaults:
  112.  **     showStatusDialog is TRUE
  113.  **        showProgressBar is FALSE
  114.  **        customMessage is NULL
  115.  **
  116.  ** If you call this function, call it in response to eStartup, eAEInitialize, or eSFInitialize only.
  117.  **/
  118.  
  119. void SetStatusParams( Boolean showStatusDialog, Boolean showProgressBar, StringPtr customMessage);
  120.  
  121.  
  122. /**
  123.  ** Status bar percentage change routine
  124.  **
  125.  ** Call this function to show the user how far along you are on your file.  Pass
  126.  ** in ther percentage (a number from 0 to 100).  This only does anything if you have
  127.  ** previously called SetStatusParams and set showProgressBar to TRUE.
  128.  **/
  129.  
  130. void SetStatusPercentage( short percentage);
  131.  
  132.  
  133. /**
  134.  ** CustomMessage change routine
  135.  **
  136.  ** Call this function to change the text in the customMessage on the fly while you are
  137.  ** processing files.  This only does anything if there is a status dialog (as there is, by
  138.  ** default).
  139.  **/
  140.  
  141. void ChangeStatusMessage( StringPtr customMessage);
  142.  
  143.  
  144. /**
  145.  ** ModuleMain
  146.  **
  147.  ** This is the entrypoint into your part of the code.
  148.  **/
  149.  
  150. Boolean ModuleMain( short message, ModuleDataRec *moduleData);
  151.  
  152.  
  153.  
  154.  
  155. /**
  156.  ** Useful Utilities
  157.  **
  158.  ** You may find the following functions useful, and are free to use them.
  159.  **/
  160.  
  161. /*
  162.  * These values can be passed to ErrorAlert, but are meaningless to FailOSErr
  163.  */
  164. typedef enum {
  165.     eWrongMachine    = 1,
  166.     eSmallSize,
  167.     eNoMemory,
  168.     eBadResourceFile,
  169.     eAppleEventError,
  170.     eOSError,
  171.     eCantReadFile,
  172.     eModuleError
  173. }ErrorType;
  174.  
  175.  
  176.     /* 
  177.      * Puts up an alert for the user with a message corresponding to error, followed by 
  178.      * aPString.  When the user clicks OK, it returns, the application does not quit.
  179.      * aPString can be NULL.
  180.      */
  181. void ErrorAlert( ErrorType error, StringPtr aPString);
  182.  
  183.  
  184.     /* 
  185.      * Puts up an alert for the user with aPString as the message.  When the user clicks OK,
  186.      * it returns, the application does not quit.
  187.      */
  188. void ShowError( StringPtr aPString);
  189.  
  190.  
  191.     /*
  192.      * If error is 0, this function simply returns, otherwise it puts up an
  193.      * alert for the user that says that an OS Error occurred, followed by the 
  194.      * value of error.  When the user clicks OK, the application quits.  The 
  195.      * eQuitting message does NOT get sent.
  196.      */
  197. void FailOSErr( OSErr error);
  198.  
  199.  
  200.     /* 
  201.      * Returns TRUE if the key corresponding to theKeyCode is being pressed
  202.      * at the time of the call
  203.      */
  204. Boolean KeyIsDown( short theKeyCode);
  205.  
  206.  
  207.     /*
  208.      * Constants that can be used in calls to KeyIsDown
  209.      */
  210. #define    TAB_KEY            (0x30)
  211. #define    SPACE_KEY        (0x31)
  212. #define COMMAND_KEY        (0x37)
  213. #define    SHIFT_KEY        (0x38)
  214. #define    CAPS_LOCK_KEY    (0x39)
  215. #define OPTION_KEY        (0x3A)
  216. #define    CONTROL_KEY        (0x3B)
  217.